<?php
/*
	此脚本程序仅用于通过命令行来执行。
	主要是通过 crontab 后台任务来执行，需要每分钟运行一次。

	功能：
		根据 config.php 定义的任务排程，启动相应的处理程序。
*/

// 防止通过浏览器访问
if ( !empty($_SERVER['SERVER_ADDR']) ) {
	header("location: /");
	exit;
}

error_reporting(1);
include dirname(__FILE__) . '/common.php';
include_once ROOT_PATH . 'include/cron_expression.php';
include_once ROOT_PATH . 'include/taskbase.php';

doWork();

function doWork()
{
	$tp = new DateTime();
	$tp = $tp->format('Y-m-d H:i');

 	$tasks = $GLOBALS['config']['tasks'];
	foreach ($tasks as $task) {
		if (empty($task['cron_ex'])) continue;
		if (isTestStage() && $task['prod_only']) continue;
		$cron = Cron\CronExpression::factory($task['cron_ex']);
		if (!$cron->isDue($tp)) continue;

		TaskBase::runTask($task);
	}
}
